package com.zx.notification.admin.service;

import com.zx.core.wrapper.ObjectWrapper;
import com.zx.core.wrapper.PageWrapper;
import com.zx.core.wrapper.ResponseWrapper;
import com.zx.notification.common.param.SystemNotificationsParam;
import com.zx.notification.common.vo.SystemNotificationsVO;


/**
 * <p>
 * description: 系统通知管理服务接口 <br>
 * create: 2025-10-17
 * </p>
 *
 * @author zhou  xun
 */
public interface ISystemNotificationsService {

    /**
     * 分页查询系统通知列表VO
     *
     * @param systemNotificationsParam 系统通知查询参数
     * @return {@link PageWrapper<  SystemNotificationsVO  >}
     */
    PageWrapper<SystemNotificationsVO> getSystemNotificationsVOListByPage(SystemNotificationsParam systemNotificationsParam);

    /**
     * 新增系统通知
     *
     * @param systemNotificationsParam 系统通知参数
     * @return {@link ResponseWrapper}
     */
    ResponseWrapper addSystemNotification(SystemNotificationsParam systemNotificationsParam);

    /**
     * 编辑系统通知
     *
     * @param systemNotificationsParam 系统通知参数
     * @return {@link ResponseWrapper}
     */
    ResponseWrapper editSystemNotification(SystemNotificationsParam systemNotificationsParam);

    /**
     * 删除系统通知
     *
     * @param systemNotificationId 系统通知id
     * @return {@link ResponseWrapper}
     */
    ResponseWrapper deleteSystemNotification(String systemNotificationId);

    /**
     * 获取指定系统通知信息
     *
     * @param systemNotificationId 系统通知id
     * @return {@link ObjectWrapper<SystemNotificationsVO>}
     */
    ObjectWrapper<SystemNotificationsVO> selectSystemNotificationById(String systemNotificationId);

    /**
     * 发送系统通知
     *
     * @param systemNotificationId 系统通知id
     * @return {@link ResponseWrapper}
     */
    ResponseWrapper sendSystemNotification(String systemNotificationId);
}